class RapportoDiLavoro < ActiveRecord::Base
  acts_as_paranoid unless SHOW_DELETED
  belongs_to :personale
  belongs_to :tipo_rapporto_di_lavoro
  belongs_to :ccnl
  belongs_to :livello_ccnl
  belongs_to :posizione_inail
  belongs_to :posizione_inps
  has_one :orario_di_lavoro, :dependent => :delete
  has_many :note, :as => :nota_ref, :dependent => :protect
  has_many :allegati, :as => :allegato_ref, :dependent => :destroy
  
  OPERAZIONE = ["ASSUNZIONE", "CESSAZIONE", "TRASFORMAZIONE", "PROROGA"]
  PROROGA = ["NUOVO RAPPORTO", "PRIMA PROROGA", "SECONDA PROROGA (tempo indet.)", "VARIAZIONE CONDIZIONI", "DA VERIFICARE"]
  validates_presence_of :personale, :data_inizio, :tipo_rapporto_di_lavoro, :ccnl, :proroga
  validates_uniqueness_of :matricola, :scope => [ :matricola, :data_inizio, :deleted_at ] , :message => 'Rapporto di lavoro già presente nel database',
    :unless => Proc.new { |i| i.matricola.nil? }
  validates_date :data_inizio
  validates_date :data_fine, :on_or_after => :data_inizio, :allow_nil => true
  
  def name
    "#{personale.name} dal #{data_inizio}" # al #{data_fine}"
  end

  def attivo
    if data_fine.nil?
      return true
    elsif (data_inizio <= Date.today) and (Date.today <= data_fine)
      return true
    else
      return false
    end
  end
end
